package edu.upn.evolucion.proventas.datos;

import edu.upn.evolucion.proventas.entidades.DetalleVenta;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

public class DetalleVentaDAO {
     private static DetalleVentaDAO instancia;

    private DetalleVentaDAO() {
    }
    
    public static DetalleVentaDAO obtenerInstancia() {
        if (instancia == null) {
            instancia = new DetalleVentaDAO();
        }
        return instancia;
    }
    public ArrayList<DetalleVenta> buscar(int idVenta) {
        Connection con = ConnectionManager.getConnection();
        try {
            
            //2. Crear Statement JDBC
            Statement stmt = con.createStatement();
            //3. Crear Sentencias SQL
            //Un objeto ResultSet, almacena los datos de resultados de una consulta
            ResultSet tabla = stmt.executeQuery("SELECT dv.id, dv.cantidad, dv.montoParcial, dv.igv, dv.idProducto "
                                            + "FROM detalleVenta dv "
                                            + "WHERE dv.idVenta = " + idVenta + " ORDER BY dv.id");
            
            //System.out.println("Codigo\tNombre");
            ArrayList<DetalleVenta> coleccion = new ArrayList<DetalleVenta>();
            while(tabla.next()){
                DetalleVenta obj = new DetalleVenta();
                obj.setId(tabla.getInt(1));
                obj.setCantidad(tabla.getInt(2));
                obj.setMontoParcial(tabla.getBigDecimal(3));
                obj.setIgv(tabla.getBigDecimal(4));
                obj.setIdProducto(tabla.getInt(5));
                coleccion.add(obj);
                //System.out.println(tabla.getInt(1)+"\t"+tabla.getString(2));
            }
            //4. ResultSet
            //5. Cerrar conexion
            stmt.close();
            return coleccion;
        } catch (Exception e) {
            e.printStackTrace(); 
            ArrayList<DetalleVenta> c = new ArrayList<DetalleVenta>();
            return c;
        } finally {
            try {
                con.close();
            } catch (Exception e) {
            }
        }
    }
}
